home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)TB / (A)TBE.ADF / Utility / ReadMe_DS14 < prev    next >
Text File  |  1989-09-12  |  28KB  |  639 lines

  1.  
  2.                         D i s k S a l v
  3.  
  4.                  AmigaDOS Disk Salvage Program
  5.  
  6.                  Copyright 1989 by Dave Haynie
  7.  
  8.                   Version 1.40 for AmigaOS 1.3
  9.                
  10.  
  11. INTRODUCTION
  12.  
  13.     DiskSalv V1.40 is a disk recovery program for all Amiga file
  14. system devices that use either the AmigaOS V1.2/V1.3 Standard File
  15. System or the AmigaOS V1.3 Fast File System. DiskSalv will scan a bad
  16. disk volume for anything that can be recovered, and will restore
  17. these items to any AmigaDOS volume. It does not make any attempt to
  18. fix the bad device in place; thus, any file that can't be restored
  19. with DiskSalv might possibly be restored with an alternate method.
  20.  
  21.     DiskSalv V1.40 fixes all bugs found in DiskSalv V1.32 (there
  22. might still be bugs, but no one found them...).  There were two main
  23. V1.32 bugs. First of all, a bug in the processing of logical vs.
  24. physical volumes caused DiskSalv's file size checking to get switched
  25. off at the wrong times. This caused OS requesters to show up when
  26. disk volumes got full, something DiskSalv was not supposed to let
  27. happen. The sizing check now works properly, and only gets switched
  28. off automatically when output is directed to RAM:. The other DiskSalv
  29. V1.32 bug was incorrect handling of circular directories, which would
  30. usually result in a crash during the scanning process. DiskSalv will
  31. now disallow a child of a directory to be added as that directory's
  32. parent. One minor fix was also added to the scanning routine to allow
  33. ^C cancellation of the scan when the QUICK or LOMEM options are
  34. selected. 
  35.  
  36.     DiskSalv V1.40 also contains some enhancements. It no longer
  37. allocates memory in tiny little chunks that can cause RAM
  38. fragmentation, but instead allocates a few large chunks of memory.
  39. It also uses much less stack memory, so it will actually salvage a
  40. typical floppy with the standard 4K stack of the Amiga shell. The
  41. DiskSalv FORMAT routine, which would crash in some cases, has been
  42. completely removed. When formatting is requested now, DiskSalv will
  43. call the AmigaDOS Format command to actually do the work. It looks
  44. for Format in the current directory, then it checks the "SYS:System"
  45. directory. DiskSalv V1.40 MUST have access to both Format and
  46. L:Disk-Validator in order to format a disk.  The START and STOP
  47. options are now more robust; START can be given a negative relative
  48. offset, STOP knows about the ROOT now, and either can express disk
  49. size as a percentage instead of in blocks, if desired. 
  50.  
  51.     Finally, DiskSalv has some new options, which will be described
  52. in greater detail later on. The first of these is the NODOS option,
  53. which solves a problem that sometimes comes up when you have a disk
  54. that can hang or crash to OS. Another new option is the FILE option,
  55. which allows you to specify a filename pattern to match against
  56. during the scanning phase. Finally, the LOMEM option drops DiskSalv
  57. memory usage to a minimum, at the expense of some speed and features.
  58.  
  59.  
  60. 1. THE BASICS OF DISKSALV V1.40
  61.  
  62.     DiskSalv V1.40 (from here on referred to as "DiskSalv") is a
  63. program designed to "salvage" any files and directories from a
  64. damaged AmigaDOS file system device to a good one. DiskSalv is run
  65. from an Amiga CLI, and in the simplest case is used very much like
  66. the AmigaDOS "DiskCopy" program. For example, to recover files from a
  67. bad disk in DF0: and restore them on a good disk DF1:, the user will
  68. type:
  69.  
  70.     1> DiskSalv FROM DF0: TO DF1:
  71.  
  72. Here the "FROM" and "TO" keywords are fully optional if the ordering
  73. of the input and output devices is kept INPUT OUTPUT. The following
  74. line would also achieve the same result:
  75.  
  76.     1> DiskSalv TO DF1: FROM DF0:
  77.  
  78. In either case, DiskSalv will immediately print to the shell's
  79. screen:
  80.  
  81.     DiskSalv V1.40 Copyright ⌐ 1989 by Dave Haynie
  82.  
  83.     Salvage FROM Device DF0: TO Path DF1:
  84.  
  85.       DEVICE     =    trackdisk.device   (DF0:)
  86.       UNIT       =        0    FLAGS      =        0
  87.       HEADS      =        2    SECTORS    =       11
  88.       LOCYL      =        0    HICYL      =       79
  89.       LOBLOCK    =        0    HIBLOCK    =     1759
  90.       RESERVED   =        2    MEMTYPE    =        3
  91.       ROOT BLOCK =      880    DISK SIZE  =     1760
  92.  
  93.     Scan Range: START 2, STOP 1759, Expecting Standard FileSystem
  94.  
  95.     Should I continue [Y]
  96.  
  97. At this point, a simple RETURN entered will start up the recovery
  98. process, while an "N" followed by a RETURN will abort the recovery.
  99.  
  100. 1.1 The Scan Phase
  101.  
  102.     If we proceed with the recovery, DiskSalv will start the first
  103. phase of it's recovery. At this point, the input device will be
  104. scanned from start to finish (blocks 2 though 1759). DiskSalv is
  105. looking for valid AmigaDOS file or directory blocks. A small
  106. Intuition window called "DiskSalv Scan" will open on the Amiga's
  107. WorkBench screen. There are three columns in this window, BLOCK,
  108. NODES, and TYPE. As each block is read, it's number is displayed
  109. under BLOCK. This happens pretty quickly; ordinarily, there's no need
  110. to examine individual block numbers anyway. The TYPE field indicates
  111. whether the block is a file (FILE), root directory (ROOT), user
  112. directory (UDIR), data block (DATA), unused block (FREE), unknown
  113. block type (????), or bad block (ERR!). Note that under the new
  114. AmigaDOS V1.3 Fast FileSystem, there's no way to distinguish between
  115. DATA and FREE blocks during a scan, so these are always displayed as
  116. unknown blocks. The final field, NODES, indicates the number of user
  117. directory or file blocks that have been located so far. 
  118.  
  119.     The other feature of this phase is the file list, which takes
  120. place on the screen. The shell window will indicate "Building
  121. Directory Map...", and the name of each directory and file that's
  122. found will be displayed under this heading. Note that at any time
  123. during this scanning phase, clicking the Scan Window close gadget
  124. will abort the program. If the QUICK or LOMEM operations are
  125. selected, no visual account of the block scan number will be
  126. displayed. 
  127.  
  128. 1.2 The Directory Resolution Phase
  129.  
  130.     The next phase is usually a very short one. The scanning window
  131. will disappear, and the shell window will indicate that DiskSalv is
  132. "Resolving Stray Directories...". During the scanning phase, when
  133. DiskSalv finds a file block, it attaches it to a directory in it's
  134. directory list. To make the scan phase fast, however, DiskSalv only
  135. does a single linear pass over the input disk during that phase. If
  136. the parent directory for a file or subdirectory isn't available,
  137. DiskSalv makes a dummy directory for it in it's directory list. 
  138.  
  139.     Normally, all of those dummy directories get changed into normal
  140. ones as they are found in the scan. However, there are some DiskSalv
  141. modes (covered later) that may result in only a partial scan being
  142. performed. In this case, valid directory entires may be outside of
  143. the scanning range. In order to get the proper names of such
  144. directories, the resolution phase goes through the directory entires
  145. in it's dummy list and tries to find real directories to match them.
  146. If a directory can't be found, it was probably located on a bad
  147. block. That's no problem, all that's lost is the name of that
  148. directory, not any of it's contents. 
  149.  
  150. 1.3 The Directory Pruning Phase
  151.  
  152.     The next pass happens purely in memory, and it attempts to remove
  153. any empty directories from the directory list. There are rarely any
  154. empty directories that need to be restored, and there are some
  155. DiskSalv options that tend to force a number of empty directories to
  156. be created in the directory list. This pass can be overridden if
  157.  empty directories are deemed important. 
  158.  
  159. 1.4 The Disk Salvage Phase
  160.  
  161.     In this next phase, the disk structure is actually restored to
  162. the output device. This proceeds until stopped via ^C, or until the
  163. output device is full. If the output device fills up, a new one can
  164. be inserted if the device supports removable media. The most common
  165. form of this would be floppy disk. 
  166.  
  167.     There are certain output devices which may not return proper
  168. volume sizing information through AmigaDOS. For instance, the RAM:
  169. device always says it's full. A DiskSalv option allows output size
  170. checking to be turned off, and it's automatically selected if the
  171. output device is RAM:. 
  172.  
  173.     DiskSalv uses normal AmigaDOS I/O routines to re-create the
  174. recovered files. Thus, it may restore to a subdirectory instead of
  175. the root of a device. If a subdirectory is specified that doesn't
  176. exit, DiskSalv will create it. Similarly, DiskSalv may output to a
  177. logical volume name instead of a device name. 
  178.  
  179.     On occasion, a file will be found that DiskSalv considers to be
  180. suspect. The screen output will indicate the problem, but that tends
  181. to scroll by very quickly. DiskSalv will now add a FileNote to any
  182. file that it suspects, indicating its concern. This option can be
  183. overridden. 
  184.  
  185.     Finally, there are occasions under which there may be file name
  186. collisions.  If the output device has a file by the same name as one
  187. that's on the input device, such a collision occurs. DiskSalv won't
  188. overwrite files. Instead, the colliding file is renamed before it is
  189. rebuilt. An extension is added to it, starting at "-0" and going on
  190. up to "-100" as collisions continue to occur. 
  191.  
  192.  
  193. 2. DISKSALV REFERENCE GUIDE
  194.  
  195.     The DiskSalv program is run and controlled completely via
  196. command-line arguments. It should run without problem from all Amiga
  197. shell programs; it currently can't be run from the WorkBench. 
  198.  
  199. 2.1 Command-Line Options
  200.  
  201.     There are quite a few options in DiskSalv that'll modify in
  202. various ways the recovery action described above. The syntax for the
  203. DiskSalv command line is given as:
  204.  
  205. Usage: DiskSalv [FROM] InDev: [TO] OutPath [[NO]FFS] [QUICK]
  206. [NOCHECK] [NOTAG] [FORMAT] [LOMEM] [NODOS] [NOTD] [FILE pattern]
  207. [NOPRUNE] [START [-]num[%]|ROOT] [STOP [+]num[%]|ROOT] [ASK] [INFO]
  208. [MASK [a|A][r|R][w|W][e|E][d|D][p|P][s|S]]
  209.  
  210. In each case, text in brackets ("[]") indicates an optional
  211. parameter, text outside of brackets indicates a required parameter,
  212. and "|" indicates a choice of parameters. The options are: ASK
  213.  
  214.     This options allows the Disk Salvage pass to proceed
  215.     interactively instead of automatically. The user is prompted at
  216.     each file or directory. A reply of 'Y' will recover that file or
  217.     move into that directory, a reply of 'N' will skip that item.
  218.     Replying '?' will list all the valid options.  A reply of 'A'
  219.     will recover everything left at the current directory level; a
  220.     reply of 'U' will skip everything left at the current directory
  221.     level.  Finally, a reply of 'Q' will quit the program completely.
  222.  
  223. [NO]FFS 
  224.     This allows the disk's filesystem to be selected.  Normally,
  225.     DiskSalv can tell the difference between a fast and standard
  226.     filesystem disk, and will act accordingly.  However, if that disk
  227.     is badly damaged, this assumption may be incorrect.  In such a
  228.     case, DiskSalv will usually assume standard filesystem.  If it's
  229.     assumption is wrong, the filesystem can be forced with these
  230.     options. 
  231.  
  232. FILE pattern
  233.     Cause the DiskSalv scanner to only record files that match the
  234.     given pattern, which is a standard AmigaDOS filename pattern.
  235.     This pattern specification has no effect on any directories that
  236.     might be examined, since DiskSalv won't necessarily know the
  237.     names of all directories until the scan phase is complete. 
  238.  
  239. FORMAT
  240.     This forces the output device to be formatted before any output
  241.     files are directed to it. If the output device isn't a device,
  242.     but instead a handler, DiskSalv will return an error message if
  243.     this option is selected; it only knows how to format devices.
  244.     DiskSalv     will also offer the option of formatting the output
  245.     device if it fills up during a recovery. An important note on all
  246.     DiskSalv formatting options -- the disk validator and the Format
  247.     command MUST be accessible for the format to work. If they're not
  248.     available, DiskSalv will refuse to format an output disk.  If you
  249.     specify the FORMAT option on the command line, DiskSalv will
  250.     return with an error message if these programs can't be located.
  251.     If you don't specify FORMAT and they can't be found, a warning
  252.     will be issued. If you go on from there, everything will work OK,
  253.     but you'll never be offered the FORMAT option. The best way to
  254.     insure that it's present is to have the L: directory with the
  255.     disk validator in it on the same disk that DiskSalv is run from,
  256.     and the Format command in the same directory as DiskSalv. It may
  257.     be necessary to Assign L: to that disk. Depending on the shell
  258.     you use to launch DiskSalv, the return code of the Format command
  259.     it spawns may not be correct. DiskSalv will notify you if it
  260.     thinks a format didn't work; an "Ignore" option here lets you
  261.     continue on if you believe it did, indeed, work. Finally, if you
  262.     have the CNC: device from Bill Hawes' mounted, Format will use
  263.     that for it's display instead of a CON: window.
  264.  
  265. FROM InDev: 
  266.     This option allows an input device to be specified.  The input
  267.     device must be a real device, not a path specification. The FROM
  268.     keyword is optional, but can be used to allow FROM and TO
  269.     specifications to be given in any order. 
  270.  
  271. INFO
  272.     The INFO option lists some information about the program, it's
  273.     distribution, bug reporting, and other stuff.  It should be
  274.     specified in the command line without any other options. 
  275.  
  276. LOMEM
  277.     This tells DiskSalv to use as little memory as it can get away
  278.     with. As with the QUICK option, no scanning display is generated.
  279.     However, some operations may take longer than the norm.  DiskSalv
  280.     normally uses 2 bits per device block, 8 bytes for each file
  281.     entry loaded into its file lists during a scan, and 52 bytes for
  282.     each directory entry. This option, among other things, changes
  283.     that fixed block usage to 1 bit per device block, lowers the
  284.     chunk size used by the memory allocator, and lowers the maximum
  285.     length allowed for path names.
  286.  
  287. MASK [a|A][r|R][w|W][e|E][d|D][p|P][s|S]
  288.     This options allows the user to specify a protection bit mask as
  289.     a filter. The supported bits are "A" for Archive, "R" for Read,
  290.     "W" for Write, "E" for Execute, "D" for Delete, "P for Pure, and
  291.     "S" for Script. Specifying the bit in lowercase indicates a mask
  292.     for that bit not set, a bit in uppercase indicates a mask for
  293.     that bit set. For example, specifying "MASK a" will scan for only
  294.     those files that don't have the archive bit set; "MASK WD" will
  295.     scan only for those files with Write and Delete permission
  296.     enabled. Any bits not specifically MASKed can be in either state.
  297.  
  298. NOCHECK
  299.     This option prevents the output device's size from being checked.
  300.     Normally this would only be used with a device that doesn't
  301.     properly report it's size, and it's automatically invoked with
  302.     output to RAM:. 
  303.  
  304. NODOS
  305.     Prevents DiskSalv from accessing DOS at any level on the input
  306.     disk.  Normally, DiskSalv does a DOS inhibit on the input disk to
  307.     prevent any other process from modifying the disk during the
  308.     recovery process, since such modifications could damage the disk
  309.     or interfere with the recovery process. This option is best used
  310.     when trying to recover from a disk that can crash DOS when
  311.     accessed. 
  312.  
  313. NOPRUNE
  314.     This option prevents the directory pruning phase from taking
  315.     place. If the input device contains empty directories that must
  316.     be restored, use this option. 
  317.  
  318. NOTAG
  319.     This option prevents DiskSalv from tagging possibly damaged files
  320.     with a FileNote explaining it's concern. 
  321.  
  322. NOTE
  323.     DiskSalv does some special optimizations when it's recovering
  324.     from a floppy disk device based on the "trackdisk.device" driver.
  325.     While there's currently no real use for this option, a future
  326.     version of "trackdisk.device" might possibly not work with these
  327.     enhancements. This option will turn the enhancements off, making
  328.     a recovery from the "trackdisk.device" work exactly like any
  329.     other recovery. 
  330.  
  331. QUICK
  332.     This option performs a quick scan.  The scan speed is improved by
  333.     not displaying the block number and type information for every
  334.     block.  This doesn't make as much difference as it did in the
  335.     earlier versions of DiskSalv; the "DiskSalv Scan" window routine
  336.     has been greatly sped up this display. 
  337.  
  338. START [-]num[%]|ROOT
  339.     This option allows the scanning routine to start at any place on
  340.     the input device. This position is either given as a decimal
  341.     block number, a percentage of the disk, or as the string ROOT.
  342.     The start value is normally an absolute disk position, but is
  343.     instead relative to the STOP position if the "-" option is
  344.     supplied. If relative values for both START and STOP are given,
  345.     they're taken to be relative from the disk's root. Since many
  346.     files are clustered after the directory root on most disks, it's
  347.     often possible to get many of a disk's files back starting the
  348.     scan there instead of at the start of the disk. 
  349.  
  350. STOP [+]num[%]|ROOT
  351.  
  352.     This option allows the scanning routine to stop at any place on
  353.     the input device. This position is either given as a decimal
  354.     block number, a perentage of the disk, or as the string ROOT.
  355.     The stop value is normally an absolute disk position, but is
  356.     instead relative to the START position if the "+" option is
  357.     supplied. If relative values for both START and STOP are given,
  358.     they're taken to be relative from the disk's root. 
  359.  
  360. TO OutPath 
  361.     This option allows an output path to be specified.  The output
  362.     device can be any valid AmigaDOS file device specification. The 
  363.     TO keyword is optional, but can be used to allow FROM and TO
  364.     specifications to be given in any order.
  365.  
  366. 2.2 Input Device Specification
  367.  
  368.     DiskSalv requires a DOS name specification for its input device.
  369. Such a name is automatically created by the operating system for each
  370. 3.5" disk drive attached, and for some hardware add-ons during
  371. automatic device binding process initiated by the AmigaDOS
  372. BindDrivers command. Other DOS names are created by the Mount command
  373. and the MountList file.
  374.  
  375.     On occasion, a few problems show up in this theory. First of all,
  376. a device like a hard disk may store its physical layout, necessary to
  377. create a DOS node, on the disk itself.  If the disk is damaged, this 
  378. special information may not be available any longer, and as a result,
  379. the hard disk's device driver won't be able to create a DOS node.  In
  380. this case, the user will have to create a MountList entry by hand for
  381. the device. This device will then be Mount-ed, and DiskSalv can take
  382. over from there.
  383.  
  384.     The other problem I've found is that allowing AmigaDOS to access
  385. a bad volume can occasionally result in a system crash.  With a
  386. mounted volume, that's no big problem; AmigaDOS won't usually try to
  387. access the device, or even load the device driver, until that drive
  388. is actually accessed. It's OK, and in fact required by DiskSalv, to
  389. just "Mount" the device. In some cases, the File System (especially
  390. FastFileSystem) will try to access a disk as its being initialized.
  391. This can cause a problem if the disk is damaged in such a way as to
  392. violate important assumptions the File System makes about the disk.
  393. The NODOS options will circumvent this by eliminating any File System
  394. level access of the device by DiskSalv. Floppies can be a bit more
  395. dangerous. A floppy will start up the File System's validator nearly
  396. as fast as it's inserted. The proper damage could crash or lockup the
  397. machine, but there's no way to prevent the floppy's File System, or
  398. the DiskChange interrupt from the trackdisk.device, from being sent
  399. until DiskSalv has been started. Once DiskSalv reaches the "Should I
  400. Continue [Y]" prompt, such damaged floppies can be safely inserted.
  401.  It's important here not to use the NODOS option.
  402.  
  403.  
  404. 3. WARNINGS AND ERRORS
  405.  
  406.     DiskSalv produces a variety of error messages when it thinks 
  407. something is wrong. These fall into two basic classes. First of these
  408. are fatal errors that may result from the program being run
  409. incorrectly in some way. This results in the program terminating with
  410. a message of some kind. The second class are warning messages that
  411. result due to some condition DiskSalv reacting to, but don't actually
  412. stop the program from executing.
  413.  
  414. 3.1 Fatal Errors
  415.  
  416. "Illegal Command Line Option"
  417.  
  418.     You typed an invalid option at the cli. DiskSalv options are case
  419. independent, but must match exactly letter for letter.
  420.  
  421. "DiskSalv User Abort"
  422.  
  423.     You terminated DiskSalv with a ^C or other user-invoked abort.
  424.  
  425. "Must have input and output objects"
  426.  
  427.     You didn't specify both a "TO" and a "FROM" device on the command
  428. line.  There are no default input or output devices.
  429.  
  430. "Input DEVICE Not Mounted"
  431.     
  432.     The input device specified does not appear in the system device
  433. list.  It's possible that you just forgot to mount the device.
  434.  
  435. "START/STOP flag conflict"
  436.  
  437.     This is usually the result of specifying a START block greater
  438. than your STOP block. DiskSalv won't scan a disk backwards. It's also
  439. possible that you specified an out-of-range block.
  440.  
  441. "Out of Memory"
  442.  
  443.     If DiskSalv can't get the memory it needs, this error message
  444. will result.  This will only happen if it can't get memory that's
  445. absolutely necessary. On systems with lesser memory, some features
  446. may no be invoked if the memory in the system gets too low, but this
  447. will not result in an error message.
  448.  
  449. "DiskSalv cannot format output device"
  450.  
  451.     You have requested the FORMAT option for an output device that
  452. DiskSalv doesn't know about, format-wise.  DiskSalv only knows how to
  453. format standard devices, like "trackdisk.device", "ramdrive.device",
  454. "hddisk.device", etc.
  455.  
  456. "Input and output object collision"
  457.  
  458.     You've specified the same device for both input and output;
  459. that's not permitted.
  460.  
  461. "Cannot get 'intuition.library'"
  462.  
  463.     For some reason, the inutition.library cannot be opened by
  464. DiskSalv.
  465.  
  466. "Cannot get 'dos.library'"
  467.  
  468.     For some reason, the dos.library can't be opened by DiskSalv.
  469.  
  470. "Cannot create message port"
  471.  
  472.     DiskSalv can't create the message port it needs for using the
  473. input device driver directly.
  474.  
  475. "Cannot find the disk validator"
  476.  
  477.     You have requested the FORMAT option for an output device, but
  478. DiskSalv can't find the disk validator necessary to validate that
  479. device after formatting it.  The disk validator is found in the "L:"
  480. directory. This mistake is most commonly made when recovering your
  481. normal system disk.  
  482.  
  483. "Cannot find the disk formatter"
  484.  
  485.     You have requested the FORMAT foption for an output device, but
  486. DiskSalv can't find the disk format command necessary to format that
  487. device. The format command may be located in the current directory or
  488. on SYS:System. This mistake is most commonly made when recovering
  489. your normal system disk.  
  490.  
  491. "Cannot create I/O port"
  492.  
  493.     DiskSalv can't create the I/O port it needs for using the input
  494. device driver directly.
  495.  
  496. "Cannot set up break trap routine"
  497.  
  498.     You'll probably never see this one, but it could be an early
  499. indication of severe low memory conditions.
  500.  
  501. "Invalid AmigaDOS file pattern specified"
  502.  
  503.     You've specified the FILE option, but supplied an invalid pattern
  504. string.
  505.  
  506. 3.2 Run-Time Warnings
  507.  
  508. "No formatting, cannot find disk validator"
  509.  
  510.     The disk validator isn't around, but since you may not need it,
  511. we go ahead.  If this warning is printed, you lose the option to
  512. format output disks during a recovery.
  513.  
  514. "No formatting, cannot find disk formatter"
  515.  
  516.     The disk format command isn't around, but since you may not need
  517. it, we go ahead.  If this warning is printed, you lose the option to
  518. format output disks during a recovery.
  519.  
  520. "Resolving link conflict # <-> #"
  521.     
  522.     This warning results from a condition on there input disk where,
  523. for a data block on that disk, the block's file header link and block
  524. chain link don't match. DiskSalv tries to resolve this conflict by
  525. choosing the best of the two, but it is possible that neither is the
  526. proper choice. This will only happen with Standard FileSystem; there
  527. is no data block chain link in the Fast FileSystem.
  528.  
  529. "Bad Extension Block - No More Link Check"
  530.  
  531.    Under Standard file system, an Extension block can't be found. We
  532. can still proceed. Under Fast FileSystem, this could never happen.
  533.  
  534. "Possible Disk Fault, File may be incomplete"
  535.  
  536.     This is printed for each file that was recovered from a partially
  537. bad trackdisk sector.
  538.  
  539. "Disk Fault, File may be incomplete"
  540.  
  541.     Means pretty much the same thing as the last one, only that this
  542. time we're certain that a block be sure about that.
  543.  
  544. "Double Disk Fault, File truncated"
  545.  
  546.     There have been serious errors in the current file, to the extent
  547. that the file may not be recoverable.
  548.  
  549. 4. KNOWN BUGS
  550.  
  551.     None
  552.  
  553.  
  554. 5. THE FUTURE OF DISKSALV
  555.  
  556.     The next release of DiskSalv is already in development, so don't
  557. consider this a dead end. I am actively seeking any and all feedback
  558. on the subject. Please, if there's something that doesn't work right,
  559. or something DiskSalv isn't doing that you'd like to see it do in the
  560. future, please let me know. I can't put it in there if I don't think
  561. of it.
  562.  
  563.  
  564. 6. LISCENCING AND DISTRIBUTION
  565.  
  566.     This program may be distributed free of charge, provided that no
  567. extra restrictions are placed on it. Nominal charges for copying or
  568. on-line services are permitted provided that they are only for those
  569. services. This program was written to help out the Amiga community,
  570. not to make folks feel guilty. Thus, no payment is required for its
  571. use.  
  572.  
  573.     I certainly don't mind donations, including donations of bug
  574. reports, comments, suggestions for future enhancements, macadamia
  575. nuts, or even software. BUT PLEASE, DON'T SEND ME ANY PIRATED
  576. SOFTWARE. YOU WILL REGRET IT. I wouldn't have thought it necessary to
  577. mention this, given the quality of the people working with the Amiga
  578. (intelligent folks recognize superiority). But I received several
  579. such disks from users of previous DiskSalv releases. They all came
  580. from out of the country, and served me just fine as blank disks. But
  581. it really annoys me to see this. Anyway, at least until the end of
  582. June I can be reached at:
  583.  
  584.                 Dave Haynie
  585.         645 Allen Avenue
  586.         Gibbstown, NJ 08027
  587.  
  588.         BIX:    hazy
  589.         PLINK:  D-DAVE H
  590.         USENET: ...!cbmvax!daveh
  591.  
  592. My electronic addresses changing.  If you really want to send money,
  593. I'm not going to refuse it or anything, but you may instead consider
  594. sending a donation instead to:
  595.  
  596.         GreenPeace
  597.         1436 U Street NW
  598.         Washington, DC 20009
  599.  
  600. Tell me about it, and I'll include you in my registration files. I
  601. know  you don't get rich from "ShareWare"; while I got some donations
  602. for DiskSalv going all the way back to the beginning (which I'm
  603. certainly very grateful for), they didn't pay enough for me to try
  604. treating DiskSalv as a money-making venture, rather than just a
  605. hobby.  I wrote DiskSalv V1.40 because it's needed, because I like to
  606. write programs in my spare time, and for my ego -- if I didn't write
  607. DiskSalv V1.40, someone else out there is going to write a better
  608. disk recovery program, and then mine won't be the best any more.
  609.  Don't know if DiskSalv V1.40 necessarily is the best these days, but
  610. I know it's the best DiskSalv so far. Anyway, while DiskSalv's saving
  611. your disks, maybe the folks at GreenPeace will get a little extra
  612. money to save a few more important things, like clean air, clean
  613. water, and wildlife.  
  614.  
  615.  
  616. 7. CREDITS AND THANKS
  617.  
  618.     My thanks go out to the Amiga community in general, for all the
  619. good stuff they're doing.  Special thanks to:
  620.  
  621.     - Well, I switched back to Lattice on this one.  Nice going,
  622.       Mr. Toebes.  
  623.     - Bill Hawes, as always, for AREXX and WShell.
  624.     - The Arthur Guinness Company.
  625.     - The gang at PLINK for continued help.
  626.     - Joseph Armstrong, for restoring my faith in humanity by sending
  627.       me the first disk I've received from outside the USA in
  628.       response to DiskSalv that wasn't full of pirated stuff.
  629.       Ripper! 
  630.     - Folks who've found the latest round of bugs, the number of
  631.       which actually seems to be shrinking; or supplied enhancement
  632.       ideas (thus opening up room for new bugs...) including:
  633.       Greg Berlin, Bruce Dawson, Joanne Dow, Marco Papa, D.C. Murphy,
  634.       Steve Rosenthal
  635.               
  636.       
  637.                 -Dave Haynie
  638.                  April 2, 1989
  639.